# www.numpy.org.cn
import numpy as np
# 自制的数据集
import dataset 
# 绘图工具库
from matplotlib import pyplot as plt
# 3d图绘制工具
from mpl_toolkits.mplot3d import Axes3D
# 1 获取100组numpy数组随机数据
m=100
xs,ys = dataset.get_xy_dateset4(m)
# 2 限制xy坐标量程 
#   不然图片的xy轴会根据数据发生变动
# plt.xlim(0,1)
# plt.ylim(0,1.2)
# 3 这节课增加了偏置项b
w = 0.1
b = 0.1
# y_pre = w * xs + b

# 4 3D绘图初始化
# mpl_toolkits3.8以前
# fig = plt.figure()
# ax = Axes3D(fig)
# mpl_toolkits3.8以后
ax = plt.axes(projection="3d")
# 限制z轴量程
ax.set_zlim(0,2)

ws = np.arange(-1,2,0.1)
bs = np.arange(-2,2,0.1)

# 5 绘制w-b-e函数图像
for b in bs:
    es = []
    for w in ws:
        y_pre = w * xs + b
        e = (1/m)*np.sum((ys - y_pre)**2)
        es.append(e)
    # 6 依次在三维图画上以b为变量的一条条曲线
    ax.plot(ws,es,b,zdir = "y")

plt.show()

